import StoreInterface from "./StoreInterface";

class Config<ConfigType extends BaseConfig> extends StoreInterface<ConfigType> {
  constructor(reactive: Function, configInfo: ConfigType) {
    super(reactive, configInfo);
  }
}

export default Config;

export interface BaseConfig {
  /** 登录凭证cookie键名 */
  tokenKey: string;
  /** 请求超时时间, (单位:ms) */
  requestOvertime: number;
  /** 是否开发环境 */
  isDev: boolean;
  /** 是否测试环境 */
  isTest: boolean;
  /** 是否生产环境 */
  isProd: boolean;
  /** 运行环境 */
  env: "dev" | "test" | "prod";
  /** hostname */
  hostname: string;
  /** 外链列表 */
  outsideUrlInfo: { [key in string]: string };
  /** 请求代理地址(测试环境地址) */
  proxyTargetUrl: string;
  /** 开发端口 */
  devPort: number;
}
